package cn.han.oopextends;

//本类用于继承的入门案例
public class ExtendsDome {
    public static void main(String[] args) {
        Animal a = new Animal();
        Cat c = new Cat();
        miaomiao m = new miaomiao();
        a.eat();
        c.eat();
        m.eat();
        /*继承具有传递性*/
    }
}

/**
 * 1.我们通过extends关键字建立子类与父类的继承关系，格式：子类 extends 父类
 * 2.java只支持单继承：一个子类只能有一个父类，但是一个父类可以有多个子类
 */
//1.创建爷爷类-小动物类
class Animal {
    public void eat() {
        System.out.println("小动物吃啥都行");

    }
}

//2.创建爸爸类-小猫类
/*继承是一种is a的关系，是一种依赖性非常强，强耦合的关系*/
class Cat extends Animal {
    int a = 10;
    private int b = 100;//私有属性

}

//3.创建孙子类-喵喵类
class miaomiao extends Cat {
    public void study() {


        System.out.println("正在学java");
        System.out.println(a);//子类可以使用父类的非私有资源
        //私有资源是由于子类不可见而不能使用的，不是因为没有继承过来
        //以为被private修饰的资源只能在本类中访问
        //而且继承的时候，相当于子类把父类的资源赋值了一份，包括私有资源
    }
}